import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'
import i18n from '@/langun'
import '@/icons' // icon
import '@/permission' // permission control

// 引入打印组件 封装了自定义指令
import print from 'vue-print-nb'
Vue.use(print)
// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI, {
  i18n: (key) => i18n.t(key)
})

// 全局注册组件
import PageTools from '@/components'
Vue.use(PageTools)
Vue.config.productionTip = false
// 全局注册过滤器
// Vue.filter('fromData', val => val.split('T')[0])
import * as filtration from '@/filters'
for (const key in filtration) {
  Vue.filter(key, filtration[key])
}
// 自定义指令
Vue.directive('imgerr', {
  inserted(el, binding) {
    // 如果el.src为空(null)
    el.src = el.src || binding.value
    el.onerror = function() {
      el.src = binding.value
    }
  },
  // 组件更新后的钩子
  componentUpdated(el, binding) {
    // 除了错误, 如果 src 不存在, 也应该添加默认图片
    el.src = el.src || binding.value
  }
})

// 混入函数
import buttonVali from '@/utils/buttonvali'
// 引入多语言的实例化文件

Vue.mixin(buttonVali)
new Vue({
  i18n,
  el: '#app',
  router,
  store,
  render: h => h(App)
})
